
$(document).ready(function(){
	// показать модераторские опции
	$('#forum_mod_options').click(function(){
		var pos  = $(this).position();
		var ul   = $('#forum_mod_options_menucontent');
		ul.css({top: pos.top + $(this).outerHeight() - 1, left: pos.left + 1});
		ul.toggle();
	});
			
	$( "#dialog:ui-dialog" ).dialog( "destroy" );
	
	var reason_txt  = $( "#reason_txt" ),
		rm_topic_id = $( "#rm_topic_id" ),
		allFields   = $( [] ).add( reason_txt ).add( rm_topic_id );
	
	$( "#dialog-form" ).dialog({
		autoOpen: false,
		height: 245,
		width: 520,
		modal: true,
		buttons: {
			"Удалить": function() {
				var dialog   = $(this);
				var topic_id = rm_topic_id.val();
				
				if ($('#rm_light').attr('checked')){
					$.post(
						'/cgi-bin/iForum/moder/topic_set_active/',
						{'topic_id': topic_id, 'active': 0, 'reason_txt': reason_txt.val()},
						function(rsp){
							if (rsp == null || rsp.err_code != 0){
								alert('Ошибка удаления темы');
								return;
							}//end if
							
							dialog.dialog( "close" );
							
							$('#trow_' + topic_id).addClass('moderated');
						}, "json");
				} else if ($('#rm_hard').attr('checked')){
					//удаление темы в помойку
					$.post(
						'/cgi-bin/iForum/moder/topic_delete/',
						{'topic_id': topic_id, 'reason_txt': reason_txt.val()},
						function(rsp){
							if (rsp == null || rsp.err_code != 0){
								alert('Ошибка удаления темы');
								return;
							}//end if
							
							dialog.dialog( "close" );
							
							window.location.reload(true);
						}, "json");
				}//end if
			},
			
			"Отмена": function() {
				$(this).dialog( "close" );
			}
		},
		
		close: function() {
			allFields.val("");
			
			$('#rm_light').attr("checked", "checked");
		}
	});
	
	//moder features frum topics hover
	function moder_features_hide(){
		$(this).find('ul.topic_moderation').hide()();
	}
	
	function moder_features_show(){
		$(this).find('ul.topic_moderation').show();
	}
	
	function moder_stub(){
		return false;
	}
			
	$('.btn_group_moderate').each(function(){
		$(this).mouseenter(moder_features_show);
		$(this).mouseleave(moder_features_hide);
		
		var topic_id = this.id.substr(9);
		
		// изменение темы
		$(this).find('.t_rename a').click(function startEdit(){
			var btn_moder = $(this);
			btn_moder.unbind().click(moder_stub);
			
			var topic = $('#tid_link_' + topic_id);
			var topic_clone = topic.clone();
			
			var edt = $('<input/>', {
						'class' : 'input_text',
						'value' : topic.text(),
						'maxLength' : 150,
						'type' : 'text'
					});
			
			topic.replaceWith(edt);
			
			var submit = $('<input/>', {
						'class' : 'input_submit',
						'value' : 'Сохранить',
						'maxLength' : 150,
						'type'  : 'submit',
						'style' : 'margin: 0 5px'
					}).insertAfter(edt);
			
			var cancel = $('<a/>', {
						'class' : 'cancel',
						'title' : 'Отмена',
						'href'  : '#',
						'style': 'margin: 0 5px'
					}).text('Отмена').insertAfter(submit);
			
			cancel.click(function(){
				submit.remove();
				cancel.remove();
				edt.replaceWith(topic_clone);
				btn_moder.click(startEdit);
				return false;
			});
			
			submit.click(function(){
				var new_title = edt.val();
				
				$.post(
					'/cgi-bin/iForum/moder/topic_edit/',
					{'topic_id': topic_id, 'title': new_title},
					function(rsp){
						if (rsp == null || rsp.err_code != 0){
							alert('Ошибка изменения темы');
							return;
						}//end if
						
						submit.remove();
						cancel.remove();
						edt.replaceWith(topic_clone.text(new_title));
						
						btn_moder.click(startEdit);
					},
					"json"
				);
				
				return false;
			});
			
			return false;
		});
		
		// pin-unpin topic
		$(this).find('.t_pin a, .t_unpin a').click(function(){
			var pinned = $(this).parent().attr('class') == 't_pin' ? 1 : 0;
			
			$.post(
					'/cgi-bin/iForum/moder/topic_set_pinned/',
					{'topic_id': topic_id, 'pinned': pinned},
					function(rsp){
						if (rsp == null || rsp.err_code != 0){
							alert('Ошибка прикрепления/открепления темы');
							return;
						}//end if
						
						window.location.reload(true);
					},
					"json"
				);
			
			return false;
		});
		
		// open-close topic
		function topic_set_status(){
			var obj = $(this);
			var status = obj.parent().attr('class').substr(2);
			
			$.post(
				'/cgi-bin/iForum/moder/topic_set_status/',
				{'topic_id': topic_id, 'status': status},
				function(rsp){
					if (rsp == null || rsp.err_code != 0){
						alert('Ошибка открытия/закрытия темы');
						return;
					}//end if
					
					var new_href;
					
					if (status == 'open'){
						new_href = $('<a/>', {title: 'Закрыть тему', href: '#'});
						new_href.html('<img title="Закрыть тему" alt="Закрыть тему" src="/images/forum/lock.png">');
						$('#trow_' + topic_id).find('td:first img').attr('src', '/images/forum/t_unread.png');
						obj.parent().attr('class', 't_closed');
					} else {
						new_href = $('<a/>', {title: 'Открыть тему', href: '#'});
						new_href.html('<img title="Открыть тему" alt="Открыть тему" src="/images/forum/lock_open.png">');
						$('#trow_' + topic_id).find('td:first img').attr('src', '/images/forum/t_closed.png');
						obj.parent().attr('class', 't_open');
					}//end_if
					
					new_href.click(topic_set_status);
					obj.replaceWith(new_href);
				}, "json");
		
			return false;
		}
		
		$(this).find('.t_closed a').click(topic_set_status);
		$(this).find('.t_open   a').click(topic_set_status);
		
		// topic delete
		$(this).find('.t_delete a').click(function() {
			var topic_title = $('#tid_link_' + topic_id).html().substr(0, 35);
			var dotted = topic_title.length < 25 ? '' : '...';
			
			$('#rm_topic_id').val(topic_id);
			
			$("#dialog-form").dialog("option", "title", 'Удаление темы: "' + topic_title + dotted + '"').dialog("open");
			return false;
		});
		
		// topic restore (_active=1)
		$(this).find('.t_restore a').click(function(){
			var obj = $(this);
			
			$.post(
					'/cgi-bin/iForum/moder/topic_set_active/',
					{'topic_id': topic_id, 'active': 1},
					function(rsp){
						if (rsp == null || rsp.err_code != 0){
							alert('Ошибка активации темы');
							return;
						}//end if
						
						$('#trow_' + topic_id).removeClass('moderated');
						obj.remove();
					},
					"json"
				);
			
			return false;
		});
	});//end for each moder btn
	
	// refresh btn_check
	function refresh_btn_check() {
		var count = $('.input_check_moder:checked').length;
		
		var obj = $('#btn_check');
		
		if (count > 0)
			obj.removeAttr('disabled');
		else 
			obj.attr('disabled', 'disabled');
		
		obj.val('С отмеченными (' + count + ')');
	}
	 
	// check all topics
	$('#topic_id_all').change(function(){
		if ($(this).attr('checked'))
			$('.input_check_moder').attr('checked', true);
		else
			$('.input_check_moder').removeAttr('checked');
		
		refresh_btn_check();
		
		return false;
	});
	
	// check one topic
	$('.input_check_moder').change(function(){
		refresh_btn_check();
		
		return false;
	});
});
